
/*
	idle source是用于向外提供一个异步处理事件的借口。比如后台线程在执行长时间的运算，
	需要将结果显示到UI上，此时可以适时投递一个idle source，主循环在一次处理
	完所有普通的事件之后，即可处理idle source，在idle source的处理函数中即可完成UI
	的更新。采用此种机制，可以异步的更新UI，无需枷锁。

	并且本UI库更新UI的方式也是通过idle source来实现，将各种UI更新请求封装成一个idle 
	source
*/

#ifndef TP_IDLE_SOURCE_H
#define TP_IDLE_SOURCE_H

#include "tp_source.h"

TP_DECL_BEGIN

typedef TpRet (*TpOnIdle)(void* user_data);

TpSource* tp_source_idle_create(TpOnIdle on_idle, void* user_data);

TP_DECL_END

#endif /* TP_IDLE_SOURCE_H */